package com.nc.solutions.rentacar.domain.tariff;

import com.nc.solutions.rentacar.domain.car.ICar;
import com.nc.solutions.rentacar.domain.Money.impl.Money;

import java.util.Date;

/**
 * Interface of car tariff, which defines price of car rent
 */
public interface ITariff {
    /**
     * Getting price of car rent for some period
     * @param dateFrom is start date
     * @param dateTo is end date
     * @return rent price
     */
    Money getPrice(Date dateFrom, Date dateTo);

    /**
     * Setting tax rate per one day
     * @param taxRate is money per one day
     */
    void setTax(Money taxRate);

    /**
     * @return car of this tariff
     */
    ICar getCar();
}
